/*
 * Powered By XY
 * Since 2020
 */

package com.xy.biz.ts.domain.req;

import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;

import org.hibernate.validator.constraints.Length;

import java.time.LocalDateTime;

import javax.validation.constraints.Max;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;

/**
 *
 *
 * @author zgy
 * @date 2021-6-28
 */
@NoArgsConstructor
@AllArgsConstructor
@Builder
@Data
public class SaveTrainFlowHandleRequest {

    /**
     * 培训流程节点Id
     */

    private Long trainFlowHandleId;
    /**
     * 外部key，例如activiti的流程Id
     */
    @NotBlank
    @Length(max = 30)
    private String foreignKey;
    /**
     * 阶段：0-未定义
     */
    @NotBlank
    @Length(max = 30)
    private String phase;
    /**
     * 结果：0未定义，1-通过，2-驳回，3-终止流程，4-取消流程
     */
    @NotNull
    @Max(127)
    private Integer result;
    /**
     * 处理意见
     */
    @Length(max = 200)
    private String opinion;
    /**
     * 处理人用户Id
     */
    @NotNull
    private Long handleUserId;
    /**
     * 处理人部门Id
     */
    @NotNull
    private Long handleUserGroupId;
    /**
     * 培训流程类型：
     train_type_common_train-普通培训，
     train_type_document_train-文档培训
     */
    @NotBlank
    private String flowType;
    /**
     * 培训分类
     train_year-年度培训
     train_common-普通培训
     */
    @NotBlank
    private String trainClassify;
    /**
     * 租户Id，0表示不指定
     */
    @NotNull
    private Long tenantId;
    /**
     * 创建人用户Id
     */
    @NotNull
    private Long createUserId;
    /**
     * 创建时间
     */
    @NotNull
    private LocalDateTime createTime;
    /**
     * 更新时间
     */
    @NotNull
    private LocalDateTime updateTime;
    /**
     * 删除标识：0-正常，1-删除
     */
    @NotNull
    private Boolean deleteFlag;

}
